Hasta ahora, si conocías la forma de cifrar, sabías también descifrar, por eso la clave era privada.
El cifrado RSA es un cifrado de clave pública ya que es asimétrico, es decir, aunque sepas cifrar un mensaje, no puedes
descifrarlo, solo el destinatario del mensaje puede hacerlo. ¿Cómo se consigue eso?
Supón que la clave es elevar a 7. Si coges un número y lo elevas a 7, el resultado es el mensaje cifrado. Para descifrarlo, se hace la raíz séptima y recuperamos el mensaje.
Pero, ¿qué pasaría si al hacer 137, solo doy las dos últimas cifras, y digo que 137=17? Ya no se puede volver hacia atrás con la raíz séptima, porque nos falta el número completo. Este es un cifrado asimétrico. Sabes como se cifra (elevando a 7 y quedándote con las dos últimas cifras), pero no puedes descifrarlo con esa información. Para descifrarlo hace falta otra clave, la clave de descifrado, que sólo conoce el destinatario del mensaje, y que sería un número que, al elevar 17 a él, las dos últimas cifras fueran 13 (el número descifrado).
Vamos con un ejemplo real: x7(mod123)=35
Imposible recuperar la x aunque sepamos que hemos elevado el número a 7 y nos hemos quedado con el
resto obtenido al dividir por 123.
Pero sí podemos recuperarlo si sabemos la clave de descifrado, que en este caso
es 23.
Si hacemos 3523(mod123) obtenemos 11, que era el mensaje original.
La única manera de conocer la clave 23 es descomponiendo en factores el número 123. Ahí radica la
fortaleza de este método de cifrado: utilizando el producto de dos números primos muy grandes, en descomponerlo
(con los medios actuales) se tardarían millones de años.